package com.pureut.order.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.pureut.order.vo.MaterialVo;
import com.sale.system.api.domain.SysAuxiliary;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 采购计划 出参
 */
@Data
public class ProcurementPlanDto {

    /**
     * id
     */
    private Long id;

    /**
     * 物料id
     */
    private Long materialId;

    /**
     * 采购计划单号
     */
    private String purchaseNum;

    /**
     * 计划重量
     */
    private String planWeight;

    /**
     * 计划单价
     */
    private String plannedUnitPrice;

    /**
     * 需求时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date demandTime;

    /**
     * 需求人
     */
    private String demander;

    /**
     * 需求人
     */
    private String demanderDict;

    /**
     * 需求部门
     */
    private String demandDept;

    /**
     * 需求部门
     */
    private String demandDeptDict;

    /**
     * 创建人（开单人）
     */
    private String createBy;

    /**
     * 审核人
     */
    private String reviewBy;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

    /**
     * 备注
     */
    private String remark;

    /**
     * 附件地址
     */
    private String enclosureUrl;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料规格
     */
    private String materialSpec;

    /**
     * 物料类别
     */
    private String materialCategory;

    /**
     * 物料类别
     */
    private String materialCategoryDict;

    /**
     * 单据状态
     */
    private String status;

    /**
     * 单据状态(字典值)
     */
    private String statusDict;

    /**
     * 质量标准
     */
    private String qualityStandard;

    /**
     * 质量标准
     */
    private String qualityStandardDict;

    /**
     * 单位
     */
    private String unit;

    /**
     * 单位
     */
    private String unitDict;

    /**
     * 关结原因
     */
    private String closeReason;

    /**
     * 打印次数
     */
    private Integer printNum;

    /**
     * 下达量
     */
    private Double orderQuantity;

    /**
     * 物料列表
     */
    private List<MaterialVo> materialList;

    /**
     * 产地
     */
    private String materialPlace;

    /**
     * 物料类别
     */
    private String codingRules;

    /**
     * 租户id
     */
    private Long tenantId;

    /**
     * 辅助属性
     */
    private List<SysAuxiliary> auxiliaryAttribute;
}
